package com.wenlin.myproduction.util;

import android.content.Context;
import android.util.DisplayMetrics;
import android.util.TypedValue;

public class ScreenUtils {

    private ScreenUtils() {
        throw new AssertionError();
    }

    public static float dpToPx(Context context, float dp) {
        return dp * context.getResources().getDisplayMetrics().density;
    }

    public static float pxToDp(Context context, float px) {
        return px / context.getResources().getDisplayMetrics().density;
    }

    public static int dpToPxInt(Context context, float dp) {
        return (int)(dpToPx(context,dp) + 0.5f);
    }

    public static float pxToDpCeilInt(Context context, float px) {
        return (int)(pxToDp(context,px) + 0.5f);
    }
    
	public static int dpTopx(Context context, float dpValue) {
		float density = getDisplayMetrics(context).density;
		return (int) (dpValue * density + 0.5f);
	}

	public static float pxTodp(Context context, float pxValue) {
//		float density = getDisplayMetrics(context).density;
//		return (float) (pxValue / density + 0.5f);

		return (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, pxValue, context.getResources().getDisplayMetrics()));
	}
    
	/**
	 * 返回屏幕尺寸
	 * 
	 * @return
	 */
	public static DisplayMetrics getDisplayMetrics(Context context) {
		return context.getResources().getDisplayMetrics();
	}

	/**
	 * 返回屏幕尺寸(宽)
	 * 
	 * @return
	 */
	public static int getCurrentScreenWidth(Context context) {
		DisplayMetrics metrics = getDisplayMetrics(context);
		return metrics.widthPixels;
	}
	
	/**
	 * 返回屏幕尺寸(高)
	 * 
	 * @return
	 */
	public static int getCurrentScreenHeight(Context context) {
		DisplayMetrics metrics = getDisplayMetrics(context);
		return metrics.heightPixels;
	}
}
